package control

import (
	"ttbot_vx/shared/utils"
)

func init() {
	ModuleList = append(ModuleList, Module{
		func(msg *message) bool {
			return true
		},
		messageLog,
	})
}

func messageLog(ctx *messageContext) {
	go func() {
		msg := ctx.Message
		sender, err := msg.Sender()

		loginfo := ""
		log := utils.LogerDEBUG
		if err != nil {
			log = utils.LoggerWARN
			loginfo += "<未知发送者> "
		} else {
			prefix := sender.String()
			if msg.IsComeFromGroup() {
				prefix = "[" + prefix[1:len(prefix)-1] + "] "

				user, err := msg.SenderInGroup()
				if err == nil {
					prefix += "<" + user.NickName + "> "
				}
			}
			loginfo += prefix
		}

		if msg.IsTickled() || msg.IsText() || msg.IsRenameGroup() {
			loginfo += msg.Content
		} else if msg.IsLocation() {
			loginfo += "[位置]"
		} else if msg.IsRealtimeLocationStart() {
			loginfo += "发起了位置共享"
		} else if msg.IsRealtimeLocationStop() {
			loginfo += "结束了位置共享"
		} else if msg.IsPicture() {
			loginfo += "[图片]"
		} else if msg.IsEmoticon() {
			loginfo += "[动画表情]"
		} else if msg.IsVoice() {
			loginfo += "[语音消息]"
		} else if msg.IsFriendAdd() {
			log = utils.LoggerINFO
			req, err := msg.FriendAddMessageContent()
			if err != nil {
				loginfo += "[添加好友请求] 具体信息未知"
			} else {
				loginfo += "[ " + req.FromNickName + " 请求添加好友]"
			}
		} else if msg.IsCard() {
			log = utils.LoggerINFO
			card, err := msg.Card()
			if err != nil {
				loginfo += "[名片] 具体信息未知"
			} else {
				loginfo += "[推荐了 " + card.NickName + " ]"
			}
		} else if msg.IsVideo() {
			loginfo += "[视频]"
		} else if msg.IsMedia() {
			loginfo += "[应用]"
		} else if msg.IsRecalled() {
			loginfo += "撤回了一条消息"
		} else if msg.IsTransferAccounts() {
			log = utils.LoggerINFO
			loginfo += "[转账]"
		} else if msg.IsReceiveRedPacket() {
			log = utils.LoggerINFO
			loginfo += "[有红包，可惜领取不了~]"
		} else if msg.IsSystem() {
			log = utils.LoggerINFO
			loginfo += "[系统消息] " + msg.Content
		} else {
			log = utils.LoggerWARN
			loginfo += "[未知消息]"
		}

		log(loginfo)
	}()
}
